<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
    
        var num = 20;
        console.log(num);//20

        /************函数 值类型的参数传递*************/
        //函数：count 是函数的形参
        /********
            function 函数名（形参1，形参2，...）{
                函数体
            }
        ***/
        function fun(count) {//当没有调用函数的时候 形参的值 undefined
            count+=1;
            console.log(count);//传递过来的 实参值加一          
        }
    
        fun(num);
        //调用函数 传递参数，就是把函数的实参 赋值给 函数的形参
        //值类型的赋值：把当前变量存储的值（具体的数据）复制一份给接收的变量

        console.log(num);//20


        /******************函数 引用型的参数传递*************************/
        
        var obj = {
            name:'老周'
        }
        console.log(obj.name);//老周

        function funObj(item) {// 引用类型的赋值:把当前变量存储的值(具体数据的引用即地址)复制一份给接收的变量
            item.name = '老曾';
            console.log(item.name);//'老曾'    
        }
        
        funObj(obj);
        console.log(obj.name);//老曾

        // 案例
        
        var arr = [1,2,3];
        var arr2 = arr;

        console.log(arr,arr2);//[1,2,3],[1,2,3]
        
        function funArr(nums) {
            nums.push(4);
            console.log(nums);//[1,2,3,4] 
        }

        //调用函数
        funArr(arr2);
        console.log(arr,arr2);//[1,2,3,4],[1,2,3,4]

        //给arr2 重新赋值
        arr2 = [1,2,3];
        console.log(arr,arr2);//[1,2,3,4],[1,2,3]
        
        
    </script>
</body>
</html>